@rstore/nuxt-drizzle
Version:
Rstore + Nuxt + Drizzle
19 lines (18 loc) • 834 B
JavaScript
import { defineEventHandler, getRouterParams, readBody } from "h3";
import { getDrizzleDialect, getDrizzleKeyWhere, getDrizzleTableFromModel, rstoreUseDrizzle } from "../../utils/index.js";
export default defineEventHandler(async (event) => {
const { model: modelName, key } = getRouterParams(event);
const { table, primaryKeys } = getDrizzleTableFromModel(modelName);
const body = await readBody(event);
const where = getDrizzleKeyWhere(key, primaryKeys, table);
const q = rstoreUseDrizzle().update(table).set(body).where(where);
const dialect = getDrizzleDialect();
if (dialect === "pg" || dialect === "sqlite") {
const result = await q.returning();
return result[0];
} else {
await q;
const select = await rstoreUseDrizzle().select().from(table).where(where).limit(1);
return select[0];
}
});